
package lvlEditor;
import game.Node;

import java.util.*;
import java.awt.*;
import javax.swing.*;

public class Tile{
	private ImageIcon image;
	private String imageName="";
	private String target="";
	private String type="Unset type";
	private int locX;
	private int locY;
	static final int SQUARESIDE = 16; // each square in the origional pokemon seems to be 16x16

	
	public void setX(int x){locX = x;}
	public void setY(int y) {locY = y;}

	public int getX() { return locX;}
	public int getY() { return locY;}

	public String getLocation() { return Integer.toString(locX) + ", " + Integer.toString(locY); }

	public void setImage(String s) 
	{
		image = new ImageIcon("./tileImages/" + s);
		imageName = s;

		//System.out.println(image);
	}
	public String getImage() {return imageName;}
	
	public void setTarget(String s) {target = s;}
	public String getTarget() {return target;}

	public void setType(String s) {type = s;}
	public String getType() {return type;}
	
	Tile(int x, int y)
	{
		locX = x;
		locY = y;
		setImage("Null.PNG"); // starts all tiles as null black tile
		type = "obstacle";// and they should be obstacles
	}
	

//HAY GUYS


	public Node asNode()
	{
		Node tileNode = new Node("tile");
		tileNode.addSubnode("image", imageName );
		tileNode.addSubnode("target", target );
		tileNode.addSubnode("type", type );
		tileNode.addSubnode("x", ""+locX );
		tileNode.addSubnode("y", ""+locY );
		return tileNode;
	}
	
	static Tile fromNode(Node tileNode)
	{
		int x = new Integer( tileNode.contentOf("x"));
		int y = new Integer( tileNode.contentOf("y"));
		Tile t = new Tile(x,y);
		t.setImage(tileNode.contentOf("image"));
		t.setType(tileNode.contentOf("type"));
		t.setTarget(tileNode.contentOf("target"));
		return t;
	}

	public void drawImage(Component c, Graphics g)
	{
		if (image != null)
			image.paintIcon(c, g, locX * SQUARESIDE, locY * SQUARESIDE);
	}
	
	public String toString()
	{
		return "a Tile(" + 
			+ locX + ","
			+ locY + ","
			+ imageName + ","
			+ type + ","
			+ target + ")";
	}
}

	
	